package ui;

import io.Feed;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;

/**
 * Clase que representa un TableCellRenderer custom para mostrar la información de
 * los feeds en pantalla. Implementa la interfaz TableCellRenderer.
 *
 * @author Nicolás Garay
 * @author Alejandro Jacquet
 * @author Rita Romani
 */
public class FeedCellRenderer implements TableCellRenderer {

    /**
     * Implementación del método getTableCellRendererComponent() de la interfaz
     * TableCellRenderer. Una celda toma un valor de acuerdo a si se encuentra
     * seleccionado o no. Los atributos del Feed se muestran de una forma u otra
     * de acuerdo a si su atributo "abierto" es verdadero o falso.
     *
     * @param jtable
     * @param value
     * @param isSelected
     * @param hasFocus
     * @param row
     * @param column
     * @return
     */
    @Override
    public Component getTableCellRendererComponent(JTable jtable, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        JLabel etiqueta = new JLabel();
        /*
         * Este método sirve para que las celdas tomen los valores de Background seteados
         */
        etiqueta.setOpaque(true);
        if (isSelected) {
            etiqueta.setBackground(new Color(147,195,242));
        } else {
            etiqueta.setBackground(Color.WHITE);
        }

        Feed feed = ((ModeloTablaFeeds) jtable.getModel()).getFeed(row);

        if (feed.isAbierto()) {
            etiqueta.setFont((new Font("Segoe UI", Font.ITALIC, 13)));
            etiqueta.setText((String) value);
        } else {
            etiqueta.setFont(new Font("Segoe UI", Font.BOLD, 13));
            etiqueta.setText((String) value);
        }
        return etiqueta;
    }
}
